#ifndef __CE_SCENE_SCENE_H__
#define __CE_SCENE_SCENE_H__

#include <export.h>
#include <iobject.h>
#include <gfx/camera.h>
#include <gfx/projector.h>
#include <gfx/renderenvironment.h>
#include <scene/clipper.h>
#include <scene/entitynode.h>
#include <scene/lodnode.h>
#include <scene/renderbucket.h>
#include <scene/sector.h>

#include <list>

/**
 * \addtogroup scene
 * @{
 */
/**
 * @brief The scene getting rendered
 */
class CE_API ceScene : public iObject
{
  CE_OBJECT
  friend class RenderLoop;
private:
  ceSectorList  _sectors;

public:
  ceScene();

  void AddSector (ceSector* sector);
  void RemoveSector (ceSector* sector);

  ceSectorList& GetSectors ();
  const ceSectorList& GetSectors () const;

	void FindSectorLights (bool clearLights = true);
	void ApplyLights ();
};

/** @} */
#endif /* ! __CE_SCENE_SCENE_H__ */
